1. Field of the Invention
This invention relates to apparatus for affording access to computer software only by authorized persons, and more particularly to apparatus physically independent of the computer equipment but capable of executing an algorithm that can also be executed by the computer equipment to afford access.
2. Description of the Prior Art
Computer software, whether in the form of an operating system program or an application program, is typically stored in media that afford convenient access to a user. Exemplifying such media are main computer memory as well as peripherals such as magnetic disks, magnetic diskettes or magnetic tape. Software on such media requires substantial time and money to develop and it is desired in most cases to limit access to the software to only certain persons. Numerous techniques for limiting access to computer software are practiced. In multiuser systems it is typical for each user to have an identification code and/or a password which the user must enter before gaining access to the system. Security of the software can be compromised when an authorized user reveals his or her identification code and/or password to unauthorized persons or the access code is discovered by a persistent hacker.
Another technique employed, particularly with respect to application software that is provided on magnetic diskettes, is to encode on the diskette a protective routine that causes the operating system to disable any copying facilities within it. This technique has had only moderate success in preventing unauthorized use or unauthorized copying because programs for disabling such protective routines are widely available.
Although the above described techniques and the copyright laws have impeded unauthorized use and/or copying of computer software, the creators of software continue to experience losses as a result of the activities of unprincipled copiers. This has impeded the creation of software and the allocation of resources necessary to the creation of software.
SUMMARY OF THE INVENTION
The present invention is embodied in a device that is analogous to a key in that it is a small portable device that can be conveniently carried by the user and that can be employed to obtain access to computer software. The key contains solid state or semiconductor electronic elements that can execute a prescribed algorithm to produce a code which the computer receives and affords access to the software if the code is correct.
A semiconductor key embodying the present invention includes a timer which produces a series of pulses at a repetition rate corresponding to the elapse of real time. In the specific embodiments described hereinafter in more detail, the timer produces one pulse per day. The timer pulse changes the contents of a shift register, the output of the shift register being a predetermined function of the calendar date. The device includes a character output display of a password which is a function of the previously mentioned function. When the user inputs the displayed password to a computer program to practice the invention the computer affords access to the software if the password is equal to a number generated within the computer.
In order for the software in the computer to be able to produce an internal password for comparison with the user input password, the user is first prompted by the computer to enter the current date. The computer manipulates the current date by an algorithm corresponding to that in the key to produce the internal password.
An important aspect of the invention is that the shift register within the key is pre-loaded at manufacturing time with a unique number so that the likelihood of two keys being the same unique numbers is insignificant. For example, if the size of the shift register in the key is 32 bits, a size easily, achievable under the present state of the art, there are almost five billion bit combinations that can be produced. Because the key is active, i.e., because a continuous supply of power is necessary to maintain the register state, disassembly of the key for the purposes of ascertaining the function is virtually impossible because in disassembly it is highly likely that power to the shift register would be interrupted.
An enhanced version of a software access key embodying the invention, which is even more difficult for unauthorized persons to decode, involves an extra step to produce a password for input by the user. As in the version to which reference has been previously made the key contains a shift register whose state changes with elapsed real time. The computer with which the key is adapted to cooperate is coded to generate a stimulus number which can be randomly generated and which is saved within the host computer. The stimulus number is transmitted to the key without direct connection, one technique for so transmitting the stimulus number involves excitation of one or more predetermined sites on the video display of the host computer and providing in the key two or more photo-sensors which respond to the pattern of excitation of the sites. The key includes circuitry for decoding the pattern of excitation at the display sites and generating a password from a combination of the decoded signal and the output of the above mentioned register that changes with real time. In practicing the invention employing the enhanced version, the association between the password displayed to the user and the current date as manifested by the output of the timer within the key is even more tenuous and therefore more difficult, if not impossible, to display by reverse engineering.
An object of the invention is to provide a hardware device that must be employed to gain access to computer software. This object is achieved by producing and displaying a password which must be input by the user and by so arranging the circuitry in the key that it produces, each time the device is used, a different password in accordance with an algorithm that is virtually impossible to predict.
Another object of the invention is to provide a device of the type described above that is inexpensive, portable and longlasting. The advent of large scale integrated circuit technology, such as manifested in existent wristwatches and the like, permits a key in accordance with the invention to be produced at a moderate cost, particularly when compared to the cost of many software programs.
A feature and advantage of the invention is that is employs digital techniques which afford exponential expansion of the number of possible combinations by merely extending by one or more bits the size of the numbers that the apparatus employs in producing a password.
The foregoing, together with other objects, features and advantages, will be more apparent after referring to the following specification and the accompanying drawings.